#include <sys/msg.h>
#include <sys/types.h>
#include <sys/ipc.h>
#include <stdio.h>
#include <unistd.h>
#include <stdlib.h>
#include <signal.h>
#include <string.h>

#define TYPE  1

struct msgbuf
{
	long type;
	char buf[20];
};

int main()
{
	//创建key
	key_t key = ftok(".",'q');
	if(-1 == key)
	{
		printf("ftok 失败:%m\n");
		exit(-1);
	} 
	printf("ftok %m\n");

	//创建消息队列
	int msgid = msgget(key,IPC_CREAT|0666);
	if(-1 == msgid)
	{
		printf("创建消息队列失败:%m\n");
		exit(-1);
	} 
	printf("创建消息队列%m\n");

	//发送
	int r;
	struct msgbuf msg;
	while(1)
	{
		printf("请输入要发送的消息类型：");
		scanf("%d",&msg.type);
		printf("请输入要发送的消息:");
		scanf("%s",msg.buf);

		r = msgsnd(msgid,&msg,sizeof msg,IPC_NOWAIT);
		printf("r:%d\n",r);
	}

	return 0;
}
